package cn.edu.lcvc.ebuy_ruanjian2.service;

import cn.edu.lcvc.ebuy_ruanjian2.dao.AdminDao;
import cn.edu.lcvc.ebuy_ruanjian2.model.Admin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

/**
 * 专门针对admin表的业务操作类
 * */
@Service//相当于applicationContext.xml文件中的<bean id="adminBean" class="cn.edu.lcvc.ebuy_ruanjian2.bean.AdminBean"/>
public class AdminService {

    @Autowired
    private AdminDao adminDao;

    public AdminService() {
        System.out.println("adminBean初始化了一个对象");
    }

    /**
     * 登录业务
     *
     * @param username 账号名
     * @param password 密码
     * @return true表示登录成功，false表示登录失败
     */
    public boolean login(String username, String password) {
        boolean result = false;//默认登录失败
        if (adminDao.countByUsernameAndPassword(username, password) == 1) {//如果查询的记录是1
            result = true;
        }
        return result;
    }


    /**
     * 根据账号名在数据库中读取指定的记录并返回
     *
     * @param username 账户名
     * @return null表示没有找到相关的记录
     */
    public Admin getAdmin(String username) {
        Admin admin = adminDao.findByUsername(username);
        return admin;
    }


    /**
     * 读取系统中的所有管理员记录
     *
     * @param
     */
    public List<Admin> getAdmins() {
        return adminDao.findAll();
    }


    /**
     * 根据id删除指定账户
     *
     * @param id return true表示删除成功，false表示失败
     **/
    public Boolean deleteAdmin(Integer id) {
        boolean result = false;//默认失败
        if (id != null) {
            int number = adminDao.deleteById(id);
            if (number > 0) {
                result = true;
            }
        }
        return result;
    }

    /**
     * 添加账户到数据库
     *
     * @param admin
     * @return true表示添加成功，false表示失败
     **/
    public Boolean saveAdmin(Admin admin) {
        boolean result = false;
        if (admin != null) {
            //统一设置密码为123456
            admin.setPassword("123456");
            //统一设置初始不锁定
            admin.setUnLocked(true);
            //存储到数据库
            if (adminDao.save(admin) > 0) {
                result = true;
            }
        }
            return result;
    }

    /**
     * 根据id在数据库中读取指定的记录并返回
     *
     * @param id
     * @return null表示没有找到相关的记录
     */
    public Admin getAdmin(Integer id) {
        Admin admin = adminDao.findById(id);
        return admin;
    }

    /**
     * 编辑账户
     *说明：只允许编辑姓名、性别
     * **/
    public Boolean updayeAdmin(Admin admin){
        boolean result=false;
        if(adminDao.update(admin)==1){
            result=true;
        }
        return result;
    }



}
